package com.xuecheng.publish.common.constant;

import com.xuecheng.common.domain.code.ErrorCode;

/**
 *
 * 内容管理服务业务异常枚举类
 * <hr>
 * 后四位错误代码由开发者开发中进行定义<br>
 * 内容管理服务前两位错误服务标识为：12(在 {@link ErrorCode} 中定义)
 * 模块错误代码定义如下：
 * <ul>
 *   <li>课程基本--定义模块代码为： 00</li>
 *   <li>课程营销--定义模块代码为： 01</li>
 *   <li>课程发布--定义模块代码为： 02</li>
 *   <li>课程下线--定义模块代码为： 03</li>
 *   <li>课程计划--定义模块代码为： 04</li>
 *   <li>课程教师--定义模块代码为： 05</li>
 * </ul>
 * @Description: 定义内容管理中的业务异常代码
 * <p>
 *     1.实现ErrorCode规范接口类
 *     2.声明属性
 *          错误代码：code
 *          错误信息：desc
 *     3.给属性生成get和set方法(不需要)
 *     4.声明构造方法--给枚举类的对象属性来赋值
 *          一个类的构造方法
 *     5.编写错误枚举信息
 *          格式：E_6位错误代码
 *                 前2位                   中间2位                      最后两位
 *             业务服务代码              业务中的模块                   有程序员自定义
 *                  12                     00                          00/01
 *
 *     PS:枚举类时Java对象中的多例形式
 *          把多例的对象当成常量
 * </p>
 *
 * @Description:
 */
public enum CoursePublishErrorCode implements ErrorCode {

    // 内容管理：课程基本信息
    E_120001(120001, "保存课程基本信息失败"),
    E_120002(120002, "保存课程基本信息时，课程分类的分类二级分类信息不能空"),
    E_120003(120003, "保存课程基本信息时，课程分类的分类三级分类信息不能空"),
    E_120004(120004, "保存课程基本信息时，课程名称不能空"),
    E_120005(120005, "保存课程基本信息时，学习模式不能为空"),
    E_120006(120006, "保存课程基本信息时，教学模式不能为空"),
    E_120007(120007, "保存课程基本信息时，课程等级不能为空"),
    E_120008(120008, "保存的课程内容已存在，无法保存"),
    E_120009(120009, "修改数据的ID值不能为空"),
    E_120010(120010, "修改数据不存在"),
    E_120011(120011, "修改课程数据已发布或审核通过,无法修改"),
    E_120012(120012, "删除课程数据中存在已发布或审核通过,无法删除"),
    E_120013(120013, "课程信息不存在"),
    E_120014(120014, "课程数据已发布或审核通过,无法操作"),
    E_120015(120015, "课程审核状态异常"),
    E_120016(120016, "审核的状态是能为：审核通过或审核未通过"),
    E_120017(120017, "操作课程数据失败"),
    E_120018(120018, "适用人群不能为空"),
    E_120019(120019, "课程收费模式不能为空"),
    E_120020(120020, "课程信息已删除，无法操作"),



    E_120101(120101, "查询的课程营销信息不存在"),
    E_120102(120102, "要操作的课程营销信息不能为空"),
    E_120103(120103, "要操作的课程营销信息找不到对应的课程信息"),
    E_120104(120104, "课程营销信息中的收费标准不能为空"),
    E_120105(120105, "课程营销信息中的有效性不能为空"),
    E_120106(120106, "课程营销信息中的过期时间不能为空"),
    E_120107(120107, "课程营销操作失败"),
    E_120108(120108, "课程营销关联的课程已被关联"),
    E_120109(120109, "课程营销关联的课程信息不能为空"),


    E_120201(120201, "课程没有审核通过，无法发布"),
    E_120202(120202, "课程发布时发送事务消息失败"),
    E_120203(120203, "课程发布消息不存在"),
    E_120204(120204, "课程详情页发布失败"),
    E_120205(120205, "二级课程分类数据不存在"),
    E_120206(120206, "三级课程分类数据不存在"),
    E_120207(120207, "操作课程发布数据失败"),
    E_120208(120208, "课程发布时审核状态修改失败"),
    E_120209(120209, "课程发布生成页面失败"),
    E_120210(120210, "课程发布页面上传失败"),
    E_120211(120211, "课程发布消息保存失败"),
    E_120212(120212, "修改课程发布消息状态失败"),
    E_120213(120213, "课程发布消息已经发送"),




    E_120401(120401, "操作的课程计划信息不能为空"),
    E_120402(120402, "课程计划信息不存在，无法操作"),
    E_120403(120403, "操作的课程计划类型信息不能为空"),
    E_120404(120404, "课程计划没有关联课程信息"),
    E_120405(120405, "课程计划已经发布无法操作"),
    E_120406(120406, "课程计划关联的课程信息不一致，无法操作"),
    E_120407(120407, "操作课程计划信息失败"),
    E_120408(120408, "课程计划无父级信息，无法操作"),
    E_120409(120409, "课程计划信息还有子级信息，无法操作"),
    E_120410(120410, "课程计划不是第三级，无法关联媒资信息"),
    E_120411(120411, "课程计划和媒资关联失败"),
    E_120412(120412, "课程计划已经删除,无法操作"),
    E_120413(120413, "课程计划名称不能为空"),
    E_120414(120414, "课程计划已经关联媒资信息，无法删除"),
    E_120415(120415, "创建一级课程计划数据失败"),
    E_120416(120416, "课程不是录播模式，不能关联媒资信息"),
    E_120417(120417, "课程计划绑定的媒资信息不存在"),
    E_120418(120418, "课程计划绑定的媒资审核状态异常"),



    E_1200501(1200501, "课程教师信息操作失败"),
    E_1200502(1200502, "课程不能填写相同名称的教师信息"),
    E_1200503(1200503, "课程教师信息不存在"),

    E_1200601(1200601, "获得上传凭证失败，请稍后再试"),


    ;

    private int code;
    private String desc;

    CoursePublishErrorCode(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    @Override
    public int getCode() {
        return code;
    }

    @Override
    public String getDesc() {
        return desc;
    }
}
